home *** CD-ROM | disk | FTP | other *** search
/ Joystick Magazine 1996 May / cd joy 71No13.iso / pc / demos / eurosoc / source / externs.h < prev    next >
Text File  |  1995-08-01  |  22KB  |  782 lines

  1. /******************************************************************************
  2. ******************************************************************************/
  3.  
  4. // Global Constants
  5.  
  6. // Sound Fx. flags etc...
  7.  
  8. extern short int crowd_mood_a;
  9. extern short int crowd_mood_b;
  10. extern float possession;
  11. extern float poss_held;
  12. extern char kickoff;
  13.  
  14. #include "3deng.h"
  15.  
  16. extern char debug;
  17.  
  18. struct butts {
  19.     int x;
  20.     int y;
  21.     int w;
  22.     char s[10];
  23.     char l;
  24. };
  25.  
  26. extern butts us_buttons[];
  27.  
  28. extern int max_butts;
  29.  
  30. // Pixel Colours.
  31.  
  32. extern char ball_col;
  33. extern char shadow_col;
  34. extern char team_a_col;
  35. extern char team_b_col;
  36.  
  37. // General Control variables...
  38.  
  39. extern char demo;
  40.  
  41. // Ball fx.
  42.  
  43. extern float newdx,newdy;
  44.  
  45. extern short wind_on,wind_d_trend,wind_s_trend;
  46. extern float wind_x,wind_y,wind_speed;
  47. extern float init_wind_x,init_wind_y,init_wind_speed;
  48. extern float wind_var_ang;
  49.  
  50. extern float bounce_dis;
  51. extern float gravity;
  52. extern int cntspot_x;
  53. extern int cntspot_y;
  54.  
  55. // Pitch sizes.
  56. extern int pitch_len, pitch_wid;
  57. extern int halfway_line, scr_pinch;
  58. extern int right_bounds;
  59. extern int left_bounds;
  60. extern int lower_bounds;
  61. extern int upper_bounds;
  62. extern float zone_wid;
  63. extern float zone_hgt;
  64. extern float prat;
  65. extern int goal_height;    //8 feet
  66. extern int goal_depth;        //8 feet
  67. extern int post_width;                    //5 inches approx.
  68. extern int top_post_y;
  69. extern int bot_post_y;
  70.  
  71. // Players.
  72.  
  73. extern int players;
  74. extern int avg1_rate,avg1_power,avg1_bcontrol,avg1_flair,
  75.         avg1_vision,avg1_accuracy,avg1_fitness,avg1_disc;
  76. extern int avg2_rate,avg2_power,avg2_bcontrol,avg2_flair,
  77.         avg2_vision,avg2_accuracy,avg2_fitness,avg2_disc;
  78. extern int danger_radius;
  79.  
  80. extern int visual_range;
  81. extern int tackle_range;
  82. extern int block_range;
  83. extern int steal_range;
  84. extern int min_block_range;
  85.  
  86. /******************************************************************************
  87. ******************************************************************************/
  88.  
  89. // Major control variables...
  90.  
  91. extern char audio_version;
  92.  
  93. /******************************************************************************
  94. ******************************************************************************/
  95.  
  96. // Randomize variables...
  97.  
  98. extern short int rand1_tab[];
  99. extern short int rand2_tab[];
  100. extern char andys_random;
  101.  
  102.  
  103. // Global Match Variables...
  104.  
  105. // Man to man marking table....
  106.  
  107. extern int man2man[10][2];
  108. extern char man2man_a,man2man_b;
  109.  
  110. struct mtime{
  111.         unsigned short min;
  112.         float sec;
  113.         };
  114.  
  115. extern int seconds;
  116. extern mtime match_time;
  117. extern int time_factor;
  118.  
  119. extern float MF;
  120. extern float mf_scale;
  121. extern float omf_scale;
  122. extern char mf_fixed;
  123. extern char alarm,watch;
  124. extern int stop_min;
  125. extern int stop_sec;
  126. extern char practice;
  127. extern char team_a_on;
  128. extern char team_b_on;
  129.  
  130. extern char arrow_on;
  131. extern char arrow_guy;
  132.  
  133. extern short rand_seed,seed;
  134. extern int logic_cnt;
  135. extern char ball_move;
  136. extern float man_down;
  137.  
  138. extern int match_tactics1[32*2+6][10][2];
  139. extern int match_tactics2[32*2+6][10][2];
  140.  
  141. extern int launch_type;
  142. extern float launch_x,launch_y;
  143. extern float ballxdis, ballydis, ballzdis;
  144. extern float eff_ballx,eff_bally,eff_ballz;
  145. extern float ballx, bally, ballz;
  146. extern float b_xoff,b_yoff,b_zoff;
  147. extern float prev_ballx, prev_bally, prev_ballz;
  148. extern float ns_ballx, ns_bally, ns_ballz;
  149. extern float ball_zspin, ball_xyspin;
  150. extern float full_zspin, full_xyspin;
  151. extern float shoot_x,shoot_y;
  152.  
  153. extern int first_bounce;
  154. extern int swerve, spin_cnt, spin_ball, prediction;
  155. extern float ball_horz_ang,ball_vert_ang;
  156. extern float ball_diam;
  157.  
  158. extern short keeper_down=FALSE;
  159. extern int keeper_will_save;
  160. extern char keeper_on_grnd;
  161. extern float keeper_contact;
  162. extern int set_xyspin,set_zspin;
  163. extern int throw_cnt;
  164. extern char ball_in_goal;
  165. extern char ball_in_hands;
  166. extern char game_action;
  167. extern int team_a_goals;
  168. extern char last_goal;
  169. extern int team_b_goals;
  170. extern int just_scored;
  171. extern int just_thrown;
  172. extern int goal_scorer;
  173. extern int pass_type;
  174. extern int kick_type;
  175. extern int receiver;
  176. extern char cross_now;
  177. extern char must_shoot;
  178. extern char chip_pass;
  179. extern char must_pass;
  180. extern char must_punt;
  181. extern char keeper_a_in_box;
  182. extern char keeper_b_in_box;
  183. extern int keeper_steps;
  184. extern short save_block;
  185. extern float save_xoff,save_yoff,save_zoff;
  186.  
  187. extern float shot_speed;
  188.  
  189. extern int scr_x,scr_y,ball_speed;
  190. extern int interceptor_a;
  191. extern int interceptor_b;
  192. extern int in_cross_area;
  193. extern float close_in_number;
  194.  
  195. extern int ball_inair, super_shot, opponents_near_holder,opponents_really_close;
  196. extern int ball_poss,sender_1_2,ball_still,last_touch,want_pass;
  197. extern int before,support_me;
  198. extern int cannot_pick_up;
  199.  
  200. extern int ball_limbo_p;
  201. extern char ball_limbo_on;
  202. extern float ball_limbo_c;
  203. extern int ball_released;
  204. extern short last_user_a;
  205. extern short last_user_b;
  206. extern int want_pass_stat,ball_zone1,ball_zone2,ball_out_of_play;
  207. extern int nearest_a,nearest_b,old_ltouch,old_ball_poss;
  208. extern int near_path_a,near_path_b;
  209. extern int zone1_x,zone1_y,zone2_x,zone2_y;
  210. extern int incident_x,incident_y;
  211. extern int difficulty;
  212. extern int ready_centre;
  213.  
  214. extern float ball_pred_tab[50][3];
  215. extern float ns_ball_pred_tab[50][3];
  216.  
  217. extern int shooter;
  218. extern char force_select;
  219. extern char heading_ball;
  220. extern char shot_attempt;
  221. extern char flag;
  222. extern char in_game;
  223. extern char analogue;
  224. extern char match_mode;
  225. extern int dead_ball_cnt;
  226. extern int defense_a,defense_b;
  227.  
  228. extern int savex,savey,savez;
  229. extern char shot_acknowledged;
  230. extern int shot_pending;
  231. extern char match_mode;
  232. extern int duration;
  233. extern char tweening;
  234.  
  235. /******************************************************************************
  236. ******************************************************************************/
  237.  
  238. // Screen Buffer Stuff...
  239. extern int scr_a[100][4];
  240. extern int scr_b[100][4];
  241. extern int plot_cnta;
  242. extern int plot_cntb;
  243. extern int plot_buffer;
  244. extern int replay_pos;
  245. extern int replay_cnt;
  246. extern int pitch_sprs;
  247.  
  248. // Sprite Stuff...
  249.  
  250. extern float spr_coord_tab[MAX_3D_SPRS*3+1];
  251. extern short spr_ref_tab[MAX_3D_SPRS];
  252.  
  253. // User Interface...
  254.  
  255. extern short ball_travel;
  256. extern short select_cnt;
  257.  
  258. extern int button_lit;
  259. extern int delay_cnt;
  260. extern int play_nums_on;
  261. extern char *action;
  262. extern char frame;
  263. extern int frames;
  264. extern int frms_per_sec;
  265. extern "C" int game_speed;        // Currently declared in network.c
  266. extern int last_second;
  267. extern int old_clock;
  268.  
  269. #pragma pack (1)
  270.  
  271. struct user_config{
  272.     short type;
  273.     short control;
  274.     int inp_x;
  275.     int inp_y;
  276.     int inp_ox;
  277.     int inp_oy;
  278.     short inp_fb;
  279.     char chng;
  280.     signed char plr;
  281.     };
  282.  
  283. extern "C" volatile user_config users[MAX_USERS];    // Declared in network.c
  284.  
  285. struct user_vectors_i{
  286.     short x_f1;
  287.     short y_f2;
  288.     };
  289.  
  290. extern "C" volatile user_vectors_i users_dir_i[512][MAX_USERS];    // Declared in network.c
  291.  
  292. #pragma pack (4)
  293.  
  294. extern "C" volatile int writeptr;
  295. extern "C" volatile int readptr;
  296.  
  297. struct user_vectors{
  298.     float x;
  299.     float y;
  300.     char m;
  301.     char f;
  302.     };
  303.  
  304. extern user_vectors users_dir[MAX_USERS];    // Declared in glob_vars.h, as usual
  305.  
  306. extern short auto_users_list_a[10];
  307. extern short auto_users_a;
  308. extern short play_ball_a;
  309. extern char new_select;
  310.  
  311. extern short auto_users_list_b[10];
  312. extern short auto_users_b;
  313. extern short play_ball_b;
  314.  
  315. extern char user_controlled;
  316. extern char after_touch_on;
  317. extern "C" int num_of_users;    // Currently in network.c
  318.  
  319. extern short f1_down;
  320. extern short f2_down;
  321.  
  322. extern char setp_kick_type;
  323. extern float setp_kick_x;
  324. extern float setp_kick_y;
  325.  
  326. extern short user_taker;
  327.  
  328. // Input devices
  329.  
  330. extern float ux,uy;        // User x,y,f1,f2,move
  331. extern char uf1,uf2;
  332. extern char um;
  333.  
  334. // Joysticks & keyboard, taken to network.c
  335.  
  336. extern "C" signed char key1[6];
  337. extern "C" signed char key2[6];
  338.  
  339. extern "C" unsigned short joy1_cnt_x,joy1_cnt_y;
  340. extern "C" unsigned short joy2_cnt_x,joy2_cnt_y;
  341.  
  342. extern "C" int joy1_max_x,joy1_max_y,joy1_min_x,joy1_min_y;
  343. extern "C" int joy2_max_x,joy2_max_y,joy2_min_x,joy2_min_y;
  344.  
  345. extern "C" volatile int joy1_x;
  346. extern "C" volatile int joy1_y;
  347. extern "C" volatile int joy1_fire;
  348.  
  349. extern "C" volatile int joy2_x;
  350. extern "C" volatile int joy2_y;
  351. extern "C" volatile int joy2_fire;
  352.  
  353. extern "C" volatile char joy1_move;
  354. extern "C" volatile char joy2_move;
  355.  
  356. extern "C" char joystick1_on;
  357. extern "C" char joystick2_on;
  358.  
  359. extern "C" char digital_joy1;
  360. extern "C" char digital_joy2;
  361.  
  362.  
  363. extern char camera;
  364. extern char old_cam;
  365. extern char already_there;
  366. extern char reselection;
  367. extern float camera_dist;
  368. extern float poss_mode;
  369.  
  370. /******************************************************************************
  371. ******************************************************************************/
  372.  
  373. // Team Players Data...
  374.  
  375. // Wall data...
  376. extern float wallx,wally;
  377. extern int men_in_wall;
  378. struct wall {
  379.     int guy;
  380.     float x,y;
  381. };
  382.  
  383. extern wall wguys[];
  384. extern float keeper_pos_x,keeper_pos_y;
  385.  
  386. extern char in_range,in_header_rng,in_shot_rng;
  387. extern int taker_x,taker_y;
  388.  
  389. extern int penalty_taker;
  390. extern int penalty_taker_a;
  391. extern int penalty_taker_b;
  392.  
  393. extern int player_num;
  394. extern int centre_guy_1;
  395. extern int centre_guy_2;
  396.  
  397. extern int fkick_taker;
  398. extern int fkick_taker_a;
  399. extern int fkick_taker_b;
  400.  
  401. extern int gkick_taker;
  402. extern int goal_kicker_a;
  403. extern int goal_kicker_b;
  404.  
  405. extern int corner_taker;
  406. extern int corn_kicker_a;
  407. extern int corn_kicker_b;
  408. extern int ktaker;
  409. extern int bad_guy;
  410. extern char direct_fk;
  411.  
  412. extern char play_advantage;
  413.  
  414. extern char set_piece_on;
  415.  
  416. extern int throw_in_taker;
  417. extern int main_man;
  418.  
  419. extern float opp_dir_tab[11][3];
  420. extern int drib_opps;
  421.  
  422. struct bubbles{int say;int cnt;};
  423. extern bubbles speech_tab[26];
  424.  
  425. struct match_player {
  426.  
  427. // Player General...
  428.     int tm_player;
  429.     float tm_x, tm_xdis, tm_y, tm_ydis, tm_z, tm_zdis;
  430.     float tm_dist;
  431.     int tm_pos;
  432.     int tm_limbo;
  433.     short guy_on;
  434.     char control;
  435.     char tm_srng;
  436.     char tm_off;
  437.     char tm_stopped;
  438.  
  439. // Player Attributes...
  440.     int tm_rate;        //Speed.
  441.     int tm_pow;            //Physical Power.
  442.     int tm_cont;        //Ball Control.
  443.     int tm_flair;        //Flair.
  444.     int tm_vis;            //Vision.
  445.     int tm_ac;            //Accuracy.
  446.     int tm_stam;        //Stamina.
  447.     int tm_disc;        //Discipline.
  448.  
  449. // Match Stats...
  450.     int tm_book;        //Bookings.
  451.     int tm_fouls;        //Fouls Committed.
  452.     int tm_tacks;        //Tackles attempted.
  453.     int tm_twon;        //Tackles won.
  454.     int tm_shots;        //Shots attempted.
  455.     int tm_saved;        //Shots saved.
  456.     int tm_goals;        //Goals scored.
  457.     int tm_pass;        //Passes attempted.
  458.     int tm_pwon;        //Passes completed.
  459.     int tm_inj;            //Injury type.
  460.     int tm_posst;        //Time in possession.
  461.  
  462. // Animation Data...
  463.     int tm_spr, turn_dir, face_dir, dir_mode;
  464.     float tm_anim, tm_frm, tm_fstep;
  465.     unsigned char tm_hcol,tm_htype;
  466.     float tm_mcspd;
  467.     float ls_anim,ls_frm;
  468.     float contact;
  469.     char tm_newanim;
  470.  
  471. // Action Data...
  472.     int tm_act, tm_poss, tm_wall, tm_leave, tm_mark;
  473.     int go_dist, go_cnt;
  474.     float go_txdis,go_tydis,go_tx,go_ty,go_xoff,go_yoff,tm_jump;
  475.     char go_step;
  476.  
  477. // Player Intelligence...
  478.     int int_move, int_cnt, mess_num, mess_cnt;
  479.     int tm_comm,tm_ccnt;
  480. };
  481.  
  482. extern match_player teams[22];
  483.  
  484. struct officials {
  485.     float x,y,z,dir_x,dir_y,anim,frm,fstep,goto_x,goto_y;
  486.     int act,go;
  487.     char newanim;
  488.  
  489. };
  490.  
  491. extern officials refs[3];
  492. extern char offside_now;
  493. extern char can_be_offside;
  494. extern char offside_on;
  495.  
  496. extern int ref_accuracy;
  497. extern int ref_strictness;
  498. extern int ref_wait;
  499.  
  500. extern int tussle_tab[8];
  501. extern int *tussle_ptr;
  502.  
  503. /******************************************************************************
  504. ******************************************************************************/
  505.  
  506. // FUNCTIONS
  507.  
  508. /******************************************************************************
  509. ******************************************************************************/
  510.  
  511. // DISPLAY.CPP
  512.  
  513. extern void grid_map();
  514. extern void line_border(int x,int y,int wid,int hgt,int col);
  515. extern void draw_buttons();
  516. extern void light_button(int b);
  517. extern void unlight_button(int b);
  518. extern void conv_xypitch(float x, float y, int *screen_x, int *screen_y);
  519. extern void pitch_markings();
  520. extern void draw_pitch();
  521. extern void pitch_plot(int x,int y,int z,char c,char a);        //Place screen coords on plot buffer.
  522. extern void draw_buffer();
  523. extern void draw_ball();
  524. extern void draw_team();
  525. extern void panel_data();
  526. extern void faster();
  527. extern void slower();
  528. extern void show_nums();
  529. extern void frame_count();
  530. extern void frame_count_i();
  531. extern void init_pitch_sprites();
  532. extern void add_pitch_sprite(short x,short y,short z,short ref);
  533.  
  534.  
  535. // ACTIONS.CPP
  536.  
  537. extern void fire_ball_off();
  538. extern float actual_spd(match_player *player);
  539. extern float angle_to_xy(float a,float b,float x,float y);
  540. extern void user_conts(match_player *player);
  541. extern void init_anim(match_player *player,int anim);
  542. extern void init_team();
  543. extern void init_officials();
  544. extern void user_set_piece(match_player *player);
  545. extern void init_stand_act(match_player *player);
  546. extern void init_kick_act(match_player *player,int mc,float pc);
  547. extern void kick_action(match_player *player);
  548. extern void init_steal_act(match_player *player);
  549. extern void init_kphold_act(match_player *player);
  550. extern void init_throw_act(match_player *player);
  551. extern void turn_clock(match_player *player);
  552. extern void turn_anti(match_player *player);
  553. extern void turn_action(match_player *player);
  554. extern void throw_action(match_player *player);
  555. extern void init_turn_act(match_player *player);
  556. extern void init_jump_act(match_player *player,char dir,char ride=FALSE);
  557. extern void init_run_act(match_player *player,float tx,float ty,char s);
  558. extern void init_fall(match_player *player);
  559. extern void init_tackle_act(match_player *player,float tx,float ty);
  560. extern void go_toward_target(match_player *player);
  561. extern void dont_run_off(match_player *player);
  562. extern void stand_action(match_player *player);
  563. extern void steal_action(match_player *player);
  564. extern void kphold_action(match_player *player);
  565. extern void run_action(match_player *player);
  566. extern void tackle_action(match_player *player);
  567. extern void fall_action(match_player *player);
  568. extern void process_teams();
  569. extern void user_init_tackle(match_player *player);
  570. extern void init_save_act(match_player *player,int tx,int ty,int tz,int an,int zone,int bp,int cont);
  571. extern void taker_pass_f(float x,float y);
  572. extern void taker_pass_h(float x,float y);
  573. extern void taker_tee_up(float x,float y);
  574. extern void taker_shoot_d(float x,float y);
  575. extern void taker_shoot(float x,float y);
  576. extern void taker_punt(float x,float y);
  577.  
  578. // BALL.CPP
  579.  
  580. extern float get_angle(float x,float y,float d);
  581. extern void get_xydis_from_ang(float a,float d);
  582. extern float get_s_angle(float z,float d);
  583. extern void get_zdis_from_ang(float a,float d);
  584. extern void stop_ball_spin();
  585. extern void add_spin_fx();
  586. extern void move_ball();
  587. extern void grav_ball();
  588. extern void ball_friction();
  589. extern void ball_trajectory();
  590. extern void get_ball_zone();
  591. extern void launch_ball(int p);
  592. extern void reset_ball();
  593. extern void respot_ball();
  594. extern void pitch_bounds();
  595. extern void hit_goal_post();
  596. extern void hit_cross_bar();
  597. extern void hit_high_side_net();
  598. extern void hit_low_side_net();
  599. extern void hit_top_net();
  600. extern void hit_inside_back_net();
  601. extern void hit_inside_back_net_r();
  602. extern void hit_inside_top_net();
  603. extern void hit_inside_high_side();
  604. extern void hit_inside_low_side();
  605. extern void go_left_goal();
  606. extern void go_right_goal();
  607. extern void ball_collision();
  608. extern void get_ball_speed();
  609. extern void ball_limbo(int p,float c);
  610. extern void process_ball();
  611. extern void own_goal();
  612. extern void good_goal();
  613. extern void new_shot(int p);
  614. extern void reset_shot();
  615.  
  616.  
  617. // BALLINT.CPP
  618.  
  619. extern void rebound_off_plr(match_player *player);
  620. extern void hold_ball(match_player *player);
  621. extern void collect_ball(match_player *player);
  622. extern void put_spin_on_ball(int power);
  623. extern void control_difficulty(match_player *player);
  624. extern void control_ball(match_player *player);
  625. extern void ball_interact(match_player *player);
  626. extern void predict_ball();
  627. extern void get_opp_near_ball(int holder);
  628. extern void player_distances();
  629. extern int get_nearest_guy(int p_num);
  630. extern void get_nearest();
  631. extern void holder_lose_ball();
  632.  
  633.  
  634. // INTELL.CPP
  635.  
  636. extern int in_kicking_range(match_player *player,float x,float y);
  637. extern void process_speech();
  638. extern void init_speech(int p,int comm,int t=FALSE);
  639. extern void keeper_boxes();
  640. extern void reset_ideas(match_player *player);
  641. extern void reset_all_ideas();
  642. extern int shall_i_turn(match_player *player,float x,float y,char s);
  643. extern void go_to_path(int p_num,char header_only=FALSE);
  644. extern void get_tack_path(match_player *player);
  645. extern void get_target(char flag,int bz,int zx,int zy,int pn,int &x,int &y,int tac[(32*2)+6][10][2]);
  646. extern void find_zonal_target(match_player *player,float px,float py);
  647. extern int get_near_path(int p_num,int not_busy);
  648. extern void get_face_xy(int d,float &x,float &y);
  649. extern void forward_joystick(match_player *p,float &x,float &y);
  650. extern int get_dir(float x,float y);
  651. extern int angle_of_vis(match_player *player,int x,int y,float d,char cross);
  652. extern void get_opp_dir_tab(int pnum);
  653. extern int opp_around(int x,int y,int pnum);
  654. extern void player_ints(match_player *player);
  655. extern void pass_ball(int ps,char cross);
  656. extern void make_pass(match_player *player,int p,char cross);
  657. extern void dribble_dir(match_player *player,float &x,float &y);
  658. extern void go_dribble(match_player *player,float x,float y);
  659. extern void make_run(match_player *player);
  660. extern int run_decide(match_player *player);
  661. extern int punt_decide(match_player *player);
  662. extern int head_punt_decide(match_player *player);
  663. extern void make_punt(match_player *player);
  664. extern void punt_ball(match_player *player);
  665. extern void make_shoot(match_player *player);
  666. extern void shoot_ball(match_player *player);
  667. extern int shoot_decide(match_player *player);
  668. extern int head_shoot_decide(match_player *player);
  669. extern void set_pos_flags(match_player *player);
  670. extern int pass_decide(match_player *player,char cross);
  671. extern void player_comment(match_player *player);
  672. extern void tackle_decide(match_player *player);
  673. extern void steal_decide(match_player *player);
  674. extern void block_decide(match_player *player);
  675. extern void free_ball(match_player *player);
  676. extern void out_of_vis(match_player *player);
  677. extern void got_ball(match_player *player);
  678. extern void we_have_ball(match_player *player);
  679. extern int in_close(match_player *player);
  680. extern int can_close_down(match_player *player);
  681. extern void close_him_down(match_player *player);
  682. extern void force_error(match_player *player);
  683. extern void forceful_retrieve(match_player *player);
  684. extern int facing_opp_side(match_player *player);
  685. extern void go_to_between(int p_num);
  686. extern int facing_opp_back(match_player *player);
  687. extern void opp_has_ball(match_player *player);
  688. extern void intelligence(match_player *player);
  689. extern void user_intelligence(match_player *player);
  690. extern void override(match_player *player);
  691. extern void process_comments();
  692. extern void rotate_offs(int an,float &x,float &y,float &z,float nx,float ny);
  693.  
  694.  
  695. // MATHS.CPP
  696.  
  697. extern void af_randomize();
  698. extern float calc_dist(float x,float y);
  699. extern int rand_range(int range);
  700.  
  701.  
  702. // USER.CPP
  703.  
  704. extern void reselect();
  705. extern void select_users();
  706. extern void auto_select_a(short u);
  707. extern void auto_select_b(short u);
  708. extern void clear_all_autos();
  709. extern void user_xy(char u);
  710. extern void convert_inputs();
  711. extern void go_button();
  712. extern void mouse_fired();
  713. extern void process_butts();
  714. extern short user_taker_a(short p);
  715. extern short user_taker_b(short p);
  716. extern void reselect_all_users();
  717.  
  718.  
  719. // 3D_UPDT.CPP
  720.  
  721. extern void realtime_coords();
  722. extern void process_replay();
  723. extern void new_update_coords();
  724. extern void update_3d();
  725. extern void init_3d();
  726. extern void info_line();
  727. extern void process_pitch_sprs();
  728.  
  729. extern float cth,sth;            // Current viewing angle...
  730.  
  731. // RULES.CPP
  732.  
  733. extern void retake_foul();
  734. extern void match_rules();
  735. extern void process_offs();
  736. extern void init_match_mode();
  737. extern void init_foul(int fouler,char direct,char see=FALSE);
  738. extern void init_offside(match_player *player);
  739. extern char bounds_rules();
  740.  
  741. // TEST.CPP
  742. extern void stop_mf_time();
  743.  
  744. // KEYH.C
  745. extern void    claim_key_int(void);
  746. extern void    release_key_int(void);
  747.  
  748. // MY_AUDIO.CPP
  749. void play_fx(int fx,float x,float y);
  750.  
  751. // NETWORK.C
  752. extern "C" void read_joystick(char j,int *x, int *y, int *sw);
  753. extern "C" void read_joy1(int *x, int *y, int *sw);
  754. extern "C" void read_joy2(int *x, int *y, int *sw);
  755. extern "C" void calibrate_joy(char j,unsigned short *x,unsigned short *y);
  756. extern "C" void get_joy_dir1(int *x,int *y,int *f);
  757. extern "C" void get_joy_dir2(int *x,int *y,int *f);
  758. extern "C" void get_user_inputs();
  759. extern "C" void process_user_inputs();
  760.  
  761. extern "C" volatile int Teams[MAX_USERS],Players[MAX_USERS];
  762. extern "C" volatile int net_quit;
  763. extern "C" volatile char paused;
  764. extern "C" volatile char pause_request;
  765. extern "C" volatile char keys[256];
  766. extern "C" volatile char key_togs[256];
  767.  
  768. extern "C" void NetTest(void);
  769. extern "C" void Network_Play_Ready();
  770. extern "C" void Quit_Network_Play();
  771. extern "C" void End_Network_Game();
  772.  
  773. extern "C" void __far nethandler(void);
  774. extern "C" unsigned int NetworkHandle;
  775. extern "C" short wConsoleNode;
  776. extern "C" volatile int network_on;
  777. extern "C" volatile int count;
  778. extern "C" volatile int tick;
  779. extern "C" volatile int ftick;
  780.  
  781.  
  782.